package com.caiden_micheal.position.service;

import com.caiden_micheal.base.domain.AjxResult;
import com.caiden_micheal.base.dto.PageDTO;
import com.caiden_micheal.position.vo.*;
import com.caiden_micheal.user.domain.PositionOrgUser;
import com.caiden_micheal.user.domain.UserAuthority;

import java.util.List;

public interface PositionService {
    List<UserAuthority> findPositionAuthorityListByUserId(Long id);

    PageDTO findPositionsByCondition(PositionQueryVO positionQueryVO);

    AjxResult addPosition(AddPositionVO addPositionVO);

    AjxResult editPosition(EditPositionVO editPositionVO);

    AjxResult addAllocationPosition(PositionOrgUser positionOrgUser);

    AjxResult removePositionUser(RemovePositionUserVO removePositionUserVO);

    AjxResult removePosition(PositionRemoveVO positionRemoveVO);

    AjxResult addPermission(PositionPermissionQueryVO positionPermissionQueryVO);

    PageDTO positionQueryExcludeAuthority(PositionQueryVO positionQueryVO);

    AjxResult positionRemoveAuthority(PositionAuthorityRemoveVO positionAuthorityRemoveVO);

    AjxResult positionAddPermission(AddPositionPermissionVO addPositionPermissionVO);

    AjxResult findPosiitonTreeByOrg(Long orgId);
}
